// pages/shopcar/shopcar.js
import request from '../../utils/request';
import CheckAuth from '../../utils/auth'
Page({

  /**
   * 页面的初始数据
   */
  data: {
    // 右滑的按钮
    slideButtons:[{
      type: 'warn',
      text: '删除',
    }],
    cartList:[]
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
    
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    CheckAuth(()=>{
      // console.log('显示购物车');
      let {nickName} =  wx.getStorageSync('token')
      let tel = wx.getStorageSync('tel')
      request({
        url: `/carts?_expand=good&username=${nickName}&tel=${tel} `
      }).then(res=>{
        this.setData({
          cartList: res
        })
      })
    })
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  },
  // 滑动删除
  slideButtonTap(event){
    // console.log('delete',event.currentTarget.dataset.id);
    var itemId = event.currentTarget.dataset.id
    // 删除就是过滤掉
    this.setData({
      cartList: this.data.cartList.filter(item=>item.id!==itemId)
    })
    request({
      url:`/carts/${itemId}`,
      method: 'delete'
    })
  },
  // 多选框的处理函数
  handleTap(event){
    // console.log(event.currentTarget.dataset.item);
    var item = event.currentTarget.dataset.item
    // 把原有就有的checked属性取反
    item.checked = !item.checked
    this.handleUpdate(item)
  },
   // -处理函数
   handleMinus(event){
    var item = event.currentTarget.dataset.item
    if(item.number===1){
      return 
    }
    item.number--
    this.handleUpdate(item)
  },
  // +处理函数
  handleAdd(event){
    var item = event.currentTarget.dataset.item
    item.number++
    this.handleUpdate(item)
  },
  handleUpdate(item){
    this.setData({
      cartList: this.data.cartList.map(data=>{
        if(data.id===item.id){
          return item
        }
        return data
      })
    })
    request({
      url:  `/carts/${item.id}`,
      method: 'put',
      data:{
        "username": item.username,
        "tel": item.tel,
        "goodId": item.goodId,
        "number": item.number,
        "checked": item.checked
      }
    })
  },
  // 全选
  handleAllChange(event){
    // console.log(event.detail.value);
    if(event.detail.value.length===0){
      //未全选
      this.setData({
        cartList:this.data.cartList.map(item=>({
          ...item,
          checked: false
        }))
      })
    }else{
      // 全选
      this.setData({
        cartList:this.data.cartList.map(item=>({
          ...item,
          checked: true
        }))
      })
    }
  }
})